import { getComponentAuth } from '@/utils/utils';

// 前端默认权限
const defaultAuthComponents = {
  'user.role.add': '1',
  'user.role.edit': '1',
  'user.role.remove': '1',
  'user.role.view': '1',
  'user.role.enable_disable': '1',
  'user.role.edit_role': '1',
  'user.role.edit_user': '1',
  'user.menu.add': '1',
  'user.menu.edit': '1',
  'user.menu.remove': '1',
  'user.menu.view': '1',
  'user.menu.enable_disable': '1',
  'user.index.edit': '1',
  'user.index.unlock': '1',
  'user.index.reset': '1',
  'user.index.view': '1',
  'user.index.enable_disable': '1',
  'user.index.sync': '1',
  'user.dept.enable_disable': '1',
};

let permissions = {};

try {
  permissions = JSON.parse(localStorage.getItem('moduleMap')) || {};
} catch (error) {
  console.error(error);
}

// 授权组件，可以设置按钮以及任何组件的权限
const AuthComponent = props => {
  const { authCode, children } = props;
  // const auth = getComponentAuth(authCode, { ...defaultAuthComponents});
  const auth = getComponentAuth(authCode, { ...defaultAuthComponents, ...permissions });
  if (auth) {
    return children;
  } else {
    return false;
  }
};

// 获取是否授权
AuthComponent.getAuth = authCode => {
  // return getComponentAuth(authCode, { ...defaultAuthComponents });
  return getComponentAuth(authCode, { ...defaultAuthComponents, ...permissions });
};

export default AuthComponent;
